草庐IT

c++ - 包装第 3 方 DLL

全部标签

mysql - 设置 rails 找到 LIBMYSQL.dll 的默认位置

我在Windows7上并通过XAMPP设置mysql。我现在开始一个新的Rails项目(我第一次在Rails中开发),并且刚刚设置了这个项目。我想启动服务器,所以我使用了railsserver。然而它提示说"Theprogramcan'tstartbecauseLIBMYSQL.dllismissingfromyourcomputer"我知道libmysql.dll的存储位置,那么我该如何告诉Rails去那里查找呢? 最佳答案 Libmysql.dll文件位于mysql安装的bin目录中。Ruby\bin目录中还需要有它的副本。将它

c - 为什么 WinHttpQueryDataAvailable 说有 0 个字节可用?

同步操作。GetLastError=0,WinHttpQueryDataAvailable本身返回TRUE(即OK),但要读取的字节数=0知道这是什么意思吗?它通常工作正常(从相机读取JPEG流),但偶尔会卡在这里(提示代码重新连接)。根据MSDN,WinHttpQueryDataAvailable不应返回:“如果session是同步的,则请求会等待数据可用。”代码摘录在这里:g_HSession=WinHttpOpen(L"Jet",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYP

c - 你如何在 C 中创建一个在父进程死后运行的进程?

我正在用C编写一个简单的程序,它使用exec函数打开Internet浏览器。但是,在我关闭互联网浏览器之前,该程序不会终止。编写此程序以打开Internet浏览器然后结束的最佳方法是什么? 最佳答案 当您使用exec时,您的整个进程将被替换为新进程的镜像,而当前进程将不复存在。相反,预先fork一个新进程(如果需要setsid将其从父进程中分离)和然后exec新的进程镜像。fork的进程将被新的进程镜像替换,父进程将保持事件状态。如果您想让父进程保持打开状态直到子进程退出,请查看waitpid。编辑:为了将来的引用,是的,setsi

c - 如果我打算通过多个进程访问文件的多个部分,使用 CreateFileMapping 和 MapViewOfFile 的正确方法是什么?

我正在用C编写一个组件,它将被几个不同的进程使用,它们都访问同一个文件。每个进程将同时访问文件的不同部分,主要用于读取,也用于写入。我想弄清楚正确的方法是:选项A:对于每个进程,为整个文件调用一次CreateFileMapping,然后在不同部分多次使用MapViewOfFile来访问它需要的部分,这意味着如果我有10个部分我想访问,我将为整个文件调用一次CreateFileMapping,端到端,然后MapViewOfFile10次,文件的每个部分一次。或选项B:对于每个要访问的每个特定部分调用CreateFileMapping和MapViewOfFile的进程,这意味着如果我有10

c# - 如何检查目录是否共享?

如何在C#中检查目录是否共享?它是在Windows下用C/C++完成的吗?目录在同一台电脑上! 最佳答案 至于C#:要检查您是否可以访问(至少读取访问)当前登录用户的网络共享/unc路径,请执行IO.Directory.Exists(@"\\YourUNCShare")对于C++:Checkoutthisquestion还有thisMSDN文章,使用PathFileExists应该为C做。 关于c#-如何检查目录是否共享?,我们在StackOverflow上找到一个类似的问题:

c - 硬盘上分区的名称和数量

在windows编程中,如何查询硬盘上的分区数和每个分区的名称? 最佳答案 您可以使用DeviceIoControl功能与IOCTL_DISK_GET_DRIVE_LAYOUT_EX获取分区列表的控制代码。 关于c-硬盘上分区的名称和数量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9721444/

c++ - 仅使用句柄读取/写入文件

工作中遇到一个问题,我不确定答案。假设在一个进程中有一个目录的句柄。句柄设置了RW,可以说它指向桌面。有没有办法只使用句柄来读取文件或将文件写入桌面?感谢任何想法!编辑:澄清一下,这是在Windows上,是一个指向桌面的文件句柄。假设您已经知道句柄的值,并希望在同一进程中使用它,以便将文件读/写到它指向的桌面。允许使用任何代码,包括WindowsAPI。 最佳答案 您可以使用GetFinalPathNameByHandle()在目录句柄上获取路径名,将要写入的文件附加到它的末尾,然后使用CreateFile()和往常一样。

c++ - 如何发现 DLL 是否在 Windows 服务的上下文中运行?

我正在编写一个DLL,它可以在服务的上下文中运行,并且可以加载到标准的win32进程中。如何检测它是在服务上下文中运行还是在标准win32进程上下文中运行? 最佳答案 根据Session0Isolation,在Vista中引入,Windows服务在session0中运行。要确定进程是否在session0中执行,您可以使用ProcessIdToSessionId功能:DWORDsession_id;if(ProcessIdToSessionId(GetCurrentProcessId(),&session_id)){std::cout

c - 将参数传递给我的 lua dll 函数

如何将参数传递给我的luadll函数?我做了一个简单的luadll函数:staticintfunctionName(lua_State*L,intarg1,chararg2[]){printf("runningmydll:\n");printf("passingnumber:%dpassingstring=%s",arg1,arg2);return0;}并在lua中使用它来运行函数:require"myTestDll";myTestDll.functionName(1231544,"HelloWorld,I'mrunningmyDLL.");但结果是它打印了错误的数字,甚至没有接近正确

c - WinMain() 到 main() 宏中的奇怪错误

/**converts'WinMain'tothetraditional'main'entrypoint**/#definePRO_MAIN(argc,argv)\int__main(int,LPWSTR*,HINSTANCE,int);\intWINAPIWinMain(HINSTANCE__hInstance,HINSTANCE__hPrevInstance,\LPSTR__szCmdLine,int__nCmdShow)\{\intnArgs;\LPWSTR*szArgvW=CommandLineToArgvW(GetCommandLineW(),&nArgs);\assert(